package com.pureut.production.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.WeighingFinishedMaterialProduct;
import com.pureut.production.domain.dto.SmallRollFoundationDto;
import com.pureut.production.domain.dto.TraceabilityProductDto;
import com.pureut.production.domain.dto.WarehousingDto;
import com.pureut.production.domain.dto.WeighingFinishedMaterialProductDto;
import com.pureut.production.domain.vo.PackageLabelVo;
import com.pureut.production.domain.vo.WarehousingVo;
import com.pureut.production.domain.vo.WeighingFinishedMaterialProductVo;

import java.util.List;

/***
 * 成品称重service
 * Author:C
 * Date:2023/02/24 13:57
 * @DESC
 */
public interface WeighingFinishedMaterialProductService extends IService<WeighingFinishedMaterialProduct> {

    /**
     * 成品称重列表
     */
    List<WeighingFinishedMaterialProductDto> getList(WeighingFinishedMaterialProductVo weighingFinishedMaterialProductVo);

    /**
     *单据明细下方列表
     */
    List<WeighingFinishedMaterialProductDto> getViewList(String splittingOrderNumber);

    /**
     * 查看(成品称重)
     */
    WeighingFinishedMaterialProductDto getViewById(Long id);

    /**
     *信息打印，标签打印之后修改数据
     */
    boolean updateData(WeighingFinishedMaterialProductVo weighingFinishedMaterialProductVo);

    /**
     * 查看(条码修正)
     */
    WeighingFinishedMaterialProductDto getBarCodeCorrection(Long id);

    /**
     * 条码补打
     */
    WeighingFinishedMaterialProductDto getReprint(Long id);

    /**
     * 入库（pda）
     */
    WarehousingDto warehousing(WarehousingVo warehouseVo);

    /**
     * 产出统计
     */
    List<WeighingFinishedMaterialProductDto> outputStatistics(String splittingOrderNumber);

    /**
     * 新增
     */
    boolean add(PackageLabelVo packageLabelVo) throws Exception;

    /**
     * 根据产品号码获取详情(feign调用)
     */
    WeighingFinishedMaterialProductDto getWeighingFinishedData(String materialNumber);

    /**
     *  根据产品号码获取详情(完工入库 feign调用)
     */
    WeighingFinishedMaterialProductDto getFinishedData(String materialNumber);

    /**
     * 根据母卷号码查询成品称重详情（产品追溯feign）
     */
    List<TraceabilityProductDto> selectWeighingFinishedMaterialProductList(String masterVolumeNumber);

    /**
     * 通过小卷号码查询成品称重信息（产品追溯小卷基础信息）
     * @param smallVolumeNumber
     * @return
     */
    SmallRollFoundationDto selectBySmallVolumeNumber(String smallVolumeNumber);
}
